#ifndef BUDDY_H
#define BUDDY_H

#include <QSet>

#include <QString>

class Buddy
{
public:
    enum SubscriptionType {
        NotSet = 0,
        None,
        Both,
        From,
        To,
        Remove
    };

    Buddy(QString bareJid);
    Buddy(QString bareJid, Buddy::SubscriptionType type);
    Buddy(QString bareJid, Buddy::SubscriptionType type, QSet<QString> groups);
    Buddy(QString bareJid, Buddy::SubscriptionType type, QSet<QString>groups, QString name);

    Buddy::SubscriptionType subscriptionType();
    QString bareJid();
    QSet<QString> groups();
    QString name();
    QString subscriptionStatus();

    void setSubscriptionType(Buddy::SubscriptionType type);
    void setBareJid(QString bareJid);
    void setGroups(QSet<QString> groups);
    void setName(QString name);
    void setSubscriptionStatus(QString status);

private:
    QString m_bareJid;
    QString m_name;
    QString m_subscriptionStatus;
    QSet<QString> m_groups;
    Buddy::SubscriptionType m_type;
};

#endif // BUDDY_H
